package com.marvels.financial.loan.service;

import java.util.List;
import java.util.Map;

import org.springframework.web.bind.annotation.RequestBody;

import com.marvels.common.dto.MarvelsApiResultDTO;
import com.marvels.common.exception.MarvelsApiBusinessException;
import com.marvels.common.exception.MarvelsBusinessException;
import com.marvels.financial.loan.dto.RepaymentNoMobileDTO;


public interface ReimbursementProcessService {
	/**
	 * 查看还款信息
	 * @param userId
	 * @return
	 */
	public Map getRepayInfo(RepaymentNoMobileDTO repaymentNoMobileDTO)throws MarvelsBusinessException;
	/**
	 * 获取还款信息（新版本）
	 * 通过userId查找到身份证
	 * @param userId 
	 * @return
	 */
	public List<Map<String, Object>> selectPaymentInformation(RepaymentNoMobileDTO repaymentNoMobileDTO)throws MarvelsBusinessException;
	
	/**
	 * 根据loanid查看借据
	 * 通过userId查找到身份证
	 * @param userId 
	 * @return
	 */
	public Map queryDebt(RepaymentNoMobileDTO repaymentNoMobileDTO)throws MarvelsBusinessException;
	/**
	 * 查看应还款明细数据
	 * @param contractId = 合同号
	 * @param userId 
	 * @return
	 */
	public Map selectDetailsRepayment( RepaymentNoMobileDTO repaymentNoMobileDTO) throws MarvelsBusinessException;
	/**
	 * 通过 身份证号查询还款记录
	 * @param dto
	 * @return
	 * @throws MarvelsBusinessException
	 */
	public List<Map<String,Object>> selectRepaymentHistory(RepaymentNoMobileDTO repaymentNoMobileDTO);
	/**
	 * 查出扣款明细
	 * @param orgTransctionSeq = 序列号
	 * @return
	 */
	public List<Map> penaltyAdjustmentList(RepaymentNoMobileDTO repaymentNoMobileDTO);
	
	/** 提交还款
	 * @param repaymentNoMobileDTO  loanId  payType    (换卡号还款需要userBankId   盛大planCode<送上来的planId>)
	 * @return
	 * @throws MarvelsBusinessException
	 */
	public MarvelsApiResultDTO repaymentNoMobile(RepaymentNoMobileDTO repaymentNoMobileDTO)throws Exception;
	
	
	/**
	 * 查询还款计划
	 * @param repaymentNoMobileDTO
	 * @return
	 */
	public List<Map> repayPlan(RepaymentNoMobileDTO repaymentNoMobileDTO);
	
	public int updateBank(RepaymentNoMobileDTO repaymentNoMobileDTO)throws MarvelsBusinessException;
	
}
